package com.yida.gwj.basis.service;

import com.yida.gwj.basis.domain.GwjInitBusinessHouse;
import com.yida.gwj.basis.domain.dto.GwjInitBusinessHouseDTO;

import java.util.List;

/**
 * 业务房屋信息（基础数据管理模块）Service接口
 *
 * @author lqq
 * @date 2022-11-15
 */
public interface IGwjInitBusinessHouseService {
	/**
	 * 查询业务房屋集合
	 *
	 * @param businessHouse 请求参数
	 * @return /
	 */
	List<GwjInitBusinessHouse> getList(GwjInitBusinessHouse businessHouse);

	/**
	 * 根据楼栋标识码和地区ID查询业务房屋集合
	 *
	 * @param selectFlag 房屋选择状态
	 * @param bizId      业务ID
	 * @return /
	 */
	List<GwjInitBusinessHouse> getList(String selectFlag, Long bizId);

	/**
	 * 根据楼栋标识码和地区ID查询业务房屋集合
	 *
	 * @param buildCode 楼栋标识码
	 * @param bizId     业务ID
	 * @return /
	 */
	List<GwjInitBusinessHouse> getList(Long bizId, String buildCode);

	/**
	 * 根据业务ID查询业务房屋集合
	 *
	 * @param bizId 业务ID
	 * @return /
	 */
	List<GwjInitBusinessHouse> getListByBizId(Long bizId);

	/**
	 * 获取房屋集合
	 *
	 * @param buildCodes 楼栋标识码集合
	 * @param bizId      业务ID
	 * @return /
	 */
	List<GwjInitBusinessHouse> getList(String[] buildCodes, Long bizId);

	/**
	 * 查询业务房屋集合
	 *
	 * @param selectFlag 房屋选择状态
	 * @param bizId      业务ID
	 * @return /
	 */
	List<GwjInitBusinessHouseDTO> getDtoList(String selectFlag, Long bizId);

	/**
	 * 新增业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int save(GwjInitBusinessHouse businessHouse);

	/**
	 * 批量新增业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouses 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int saveBatch(List<GwjInitBusinessHouse> businessHouses);

	/**
	 * 修改业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouse 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateById(GwjInitBusinessHouse businessHouse);

	/**
	 * 批量修改业务房屋信息（基础数据管理模块）
	 *
	 * @param businessHouses 业务房屋信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateBatch(List<GwjInitBusinessHouse> businessHouses);

	/**
	 * 根据楼栋标识码删除房屋
	 *
	 * @param buildCodes 楼栋标识码
	 * @param bizId     业务ID
	 * @return /
	 */
	int deleteByBuildCodesAndBizId(List<String> buildCodes, Long bizId);

	/**
	 * 根据业务ID删除房屋
	 *
	 * @param bizId 业务ID
	 * @return /
	 */
	int deleteByBizId(Long bizId);

	/**
	 * 取消选择
	 *
	 * @param bizHouseIds 业务房屋ID
	 */
	void cancelSelect(String bizHouseIds);

	/**
	 * 加入选择
	 *
	 * @param bizHouseIds 业务房屋ID
	 */
	void confirmSelect(String bizHouseIds);
}
